package com.exam.mapper;

import com.exam.domain.Strategies;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by jly on 2017/3/15.
 */
public interface StrategiesMapper {
    /**
     * 插入选择简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addXZJD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("jd") int xzjd,
                    @Param("level") int level);

    /**
     * 插入选择中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addXZZD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("zd") int xzzd,
                    @Param("level") int level);

    /**
     * 插入选择难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addXZN(@Param("fieldxz") int fieldxz,
                   @Param("typeId") int typeId,
                   @Param("kn") int xzjd,
                   @Param("level") int level);

    /**
     * 插入判断简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addPDJD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("jd") int pdjd,
                    @Param("level") int level);

    /**
     * 插入判断中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addPDZD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("zd") int pdzd,
                    @Param("level") int level);

    /**
     * 插入判断难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addPDN(@Param("fieldxz") int fieldxz,
                   @Param("typeId") int typeId,
                   @Param("kn") int pdn,
                   @Param("level") int level);

    /**
     * 插入填空简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addTKJD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("jd") int tkjd,
                    @Param("level") int level);

    /**
     * 插入填空中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addTKZD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("zd") int tkzd,
                    @Param("level") int level);

    /**
     * 插入填空难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addTKN(@Param("fieldxz") int fieldxz,
                   @Param("typeId") int typeId,
                   @Param("kn") int tkn,
                   @Param("level") int level);

    /**
     * 插入主观简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addZGJD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("jd") int zgjd,
                    @Param("level") int level);

    /**
     * 插入主观中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addZGZD(@Param("fieldxz") int fieldxz,
                    @Param("typeId") int typeId,
                    @Param("zd") int zgzd,
                    @Param("level") int level);

    /**
     * 插入主观难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean addZGN(@Param("fieldxz") int fieldxz,
                   @Param("typeId") int typeId,
                   @Param("kn") int zgn,
                   @Param("level") int level);

    /**
     * 查询策略表里该科目是否已经存在
     *
     * @param fieldxz--科目id
     * @since 2017-3-15
     * @author jly
     * */
    int queryFieldCount(@Param("fieldxz") int fieldxz);

    /**
     * 修改选择简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataXZJD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("jd") int xzjd,
                       @Param("level") int level);

    /**
     * 修改选择中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataXZZD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("zd") int xzzd,
                       @Param("level") int level);

    /**
     * 修改选择难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataXZN(@Param("fieldxz") int fieldxz,
                      @Param("typeId") int typeId,
                      @Param("kn") int xzn,
                      @Param("level") int level);

    /**
     * 修改判断简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataPDJD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("jd") int pdjd,
                       @Param("level") int level);

    /**
     * 修改判断中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataPDZD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("zd") int pdzd,
                       @Param("level") int level);

    /**
     * 修改判断难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataPDN(@Param("fieldxz") int fieldxz,
                      @Param("typeId") int typeId,
                      @Param("kn") int pdn,
                      @Param("level") int level);

    /**
     * 修改填空简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataTKJD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("jd") int tkjd,
                       @Param("level") int level);

    /**
     * 修改填空中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataTKZD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("zd") int tkzd,
                       @Param("level") int level);

    /**
     * 修改填空难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataTKN(@Param("fieldxz") int fieldxz,
                      @Param("typeId") int typeId,
                      @Param("kn") int tkn,
                      @Param("level") int level);

    /**
     * 修改主观简单题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataZGJD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("jd") int zgjd,
                       @Param("level") int level);

    /**
     * 修改主观中等题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataZGZD(@Param("fieldxz") int fieldxz,
                       @Param("typeId") int typeId,
                       @Param("zd") int zgzd,
                       @Param("level") int level);

    /**
     * 修改主观难题数目
     *
     * @since 2017-3-15
     * @author jly
     * */
    boolean updataZGN(@Param("fieldxz") int fieldxz,
                      @Param("typeId") int typeId,
                      @Param("kn") int zgn,
                      @Param("level") int level);

    /**
     * @describe 根据id查询该科目下是否有该类型试题
     * @since 2017-3-16
     * @author jly
     * @param typeId*/
    int queryTypeId2(@Param("typeId") Integer typeId,@Param("fieldId") Integer fieldId);


    /**
     * 查询主观题种类个数
     *
     * @param fieldid 科目类别id
     * @since 2017-3-17
     * @author jly
     * */
    List<Strategies> queryZGTcount(@Param("fieldid") Integer fieldid);
}
